package com.wego.common.utils;

import com.wego.common.bean.ResultBean;
import com.wego.common.enumeration.ResultEnum;

/**
 * 结果工具类
 * @author hc
 */
public class ResultBeanUtil {
    /**
     * 操作失败,返回具体的数据、结果码和提示信息
     *
     * @param code 编号
     * @param msg  信息
     * @param data 数据
     * @return 结果
     */
    public static ResultBean build(Integer code, String msg, Object data) {
        return new ResultBean(code, msg, data);
    }

    /**
     * 操作失败,返回具体的数据、结果码和提示信息
     *
     * @param code 编号
     * @param msg  信息
     * @return 结果
     */
    public static ResultBean build(Integer code, String msg) {
        return new ResultBean(code, msg, null);
    }

    public static ResultBean build(Integer code) {
        return new ResultBean().setCode(code);
    }

    public static ResultBean build() {
        return new ResultBean();
    }

    /**
     * 操作成功,返回具体的数据、结果码和提示信息
     * 用于数据查询接口
     *
     * @param resultEnum 结果效果
     * @param data       数据
     * @return 结果
     */
    public static ResultBean build(ResultEnum resultEnum, Object data) {
        return build(resultEnum.code(), resultEnum.msg(), data);
    }

    /**
     * 成功
     *
     * @param resultEnum 结果枚举
     * @return 枚举封装后的结果
     */
    public static ResultBean build(ResultEnum resultEnum) {
        return new ResultBean(resultEnum.code(), resultEnum.msg(), null);
    }

    public static ResultBean build(Boolean flag, ResultEnum successEnum, ResultEnum failureEnum) {
        ResultBean resultBean;
        if (flag) {
            //成功
            resultBean = ResultBeanUtil.build(successEnum);
        } else {
            //失败
            resultBean = ResultBeanUtil.build(failureEnum);
        }
        return resultBean;
    }
}
